#Process the ast directory
add_subdirectory(ast)
get_property(AST_SRCS DIRECTORY ast PROPERTY DIR_SRCS)
get_property(AST_TEST_SRCS DIRECTORY ast PROPERTY DIR_TEST_SRCS)

#Process the parser directory
add_subdirectory(parser)
get_property(PARSER_SRCS DIRECTORY parser PROPERTY DIR_SRCS)
get_property(PARSER_TEST_SRCS DIRECTORY parser PROPERTY DIR_TEST_SRCS)

#Process the visitors directory
add_subdirectory(visitors)
get_property(VISITORS_SRCS DIRECTORY visitors PROPERTY DIR_SRCS)
get_property(VISITORS_TEST_SRCS DIRECTORY visitors PROPERTY DIR_TEST_SRCS)

#Process the set_relation directory
add_subdirectory(set_relation)
get_property(SET_RELATION_SRCS DIRECTORY set_relation PROPERTY DIR_SRCS)
get_property(SET_RELATION_TEST_SRCS DIRECTORY set_relation PROPERTY DIR_TEST_SRCS)

#Process the util directory
add_subdirectory(util)
get_property(UTIL_SRCS DIRECTORY util PROPERTY DIR_SRCS)
get_property(UTIL_TEST_SRCS DIRECTORY util PROPERTY DIR_TEST_SRCS)

#Combine the all source file names into a single variable
set(IEGENLIB_SRCS ${AST_SRCS} ${PARSER_SRCS} ${VISITORS_SRCS} ${SET_RELATION_SRCS} ${UTIL_SRCS})
set_property(DIRECTORY PROPERTY DIR_SRCS ${IEGENLIB_SRCS})

#Combine the all test source file names into a single variable
set(IEGENLIB_TEST_SRCS ${AST_TEST_SRCS} ${PARSER_TEST_SRCS} ${VISITORS_TEST_SRCS} ${SET_RELATION_TEST_SRCS} ${UTIL_TEST_SRCS})
set_property(DIRECTORY PROPERTY DIR_TEST_SRCS ${IEGENLIB_TEST_SRCS})
